iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
Odoo

利用【AI】工具,聰明進行 Odoo 程式開發系列 第 26

Day26:個案二:投資管理系統(6)-產生股票觀察清單,買入賣出建議

  • 分享至 

  • xImage
  •  

使用者故事

7. **作為一名投資者,我希望能查看觀察名單中股票的買入賣出建議,以便更快速地做出投資決策。**

Cousor 回應

好的,我會協助您開發股票觀察名單買入賣出建議的相關邏輯。以下是一個概述,不包含具體的程式碼:

  1. 資料收集:

    • 從現有的 stock.watchlist 模型中獲取觀察名單的股票。
    • 使用 twstock 庫獲取每支股票的最新價格和歷史數據。
  2. 技術分析指標計算:

    • 計算移動平均線(如5日、20日、60日)。
    • 計算相對強弱指標(RSI)。
    • 計算布林帶(Bollinger Bands)。
  3. 買入信號判斷:

    • 當股價突破上方20日移動平均線。
    • 當RSI從超賣區(低於30)回升。
    • 當股價接近布林帶下軌。
  4. 賣出信號判斷:

    • 當股價跌破下方20日移動平均線。
    • 當RSI進入超買區(高於70)。
    • 當股價接近布林帶上軌。
  5. 建議生成:

    • 根據上述買入和賣出信號,為每支觀察名單中的股票生成建議。
    • 將建議存儲在新的 stock.watchlist.advice 模型中。
  6. 風險評估:

    • 計算每支股票的波動率。
    • 根據波動率調整建議的強度。
  7. 使用者介面:

    • stock.watchlist 的表單視圖中添加一個按鈕來觸發建議生成。
    • 創建一個新的樹狀視圖來顯示所有的建議。

生成程式碼及測試

快速鍵 Ctrl +i 叫出composer視窗

https://ithelp.ithome.com.tw/upload/images/20241010/20102255kk1WANbD7a.jpg

產生程式碼並自動修改相關程式

https://ithelp.ithome.com.tw/upload/images/20241010/201022559Ma7kWF3lQ.jpg

生成建議

https://ithelp.ithome.com.tw/upload/images/20241010/201022559LoV6wWG6d.jpg

根據股票的技術指標(如移動平均線和相對強弱指數 RSI)來自動生成股票的投資建議。以下是此分析過程的思路:

  1. 資料收集

    • generate_advice 方法從資料庫中提取最近 60 天的 K 線數據(K 線數據通常包括股票的開盤價、收盤價、最高價和最低價),並檢查這段時間內是否至少有 30 天的數據(不足 30 天的話,無法進行技術分析)。
    • 這些數據根據日期按升序排列,並提取收盤價作為分析的基礎。
  2. 技術指標計算

    • 移動平均線(SMA):計算 5 日移動平均線 (sma5) 和 20 日移動平均線 (sma20)。移動平均線可以用來判斷短期和長期的趨勢。5 日線代表短期趨勢,而 20 日線代表中期趨勢。
    • 相對強弱指數(RSI):使用 _calculate_rsi 方法計算 RSI。RSI 是一個常見的震盪指標,用來衡量市場超買(過高)或超賣(過低)狀況。通常,RSI 超過 70 代表超買,低於 30 代表超賣。
  3. 根據技術指標生成建議

    • 程式首先假設建議是「持有」(hold),這是默認的建議類型。
    • 然後根據移動平均線和 RSI 的結果來調整建議:
      • 如果當前價格高於 5 日線,且 5 日線高於 20 日線,則生成「買入」(buy)建議,表示市場呈現上升趨勢。
      • 如果當前價格低於 5 日線,且 5 日線低於 20 日線,則生成「賣出」(sell)建議,表示市場呈現下降趨勢。
      • 如果 RSI 超過 70,表示市場超買,則建議賣出;如果 RSI 低於 30,表示市場超賣,則建議買入。
    • 依據技術指標的結果,還會附帶解釋理由(reason),例如「價格突破5日和20日均線」或「RSI超賣」。
  4. 保存或更新建議

    • 生成建議後,程式會檢查當天是否已經存在建議記錄。如果已經存在,則更新該記錄;如果沒有,則創建一條新記錄。建議包括股票清單、日期、建議類型、理由、目標價格(使用最新的收盤價),以及建議的信心程度(confidence)。

本章小節

使用 Cousor Composer 工具來加速程式碼生成和邏輯分析。通過此工具,開發者可以快速地根據使用者故事需求生成相應的程式碼,並進行自動化的邏輯處理,從而更有效地完成股票觀察名單的建議功能開發。主要流程包括:

  1. 資料收集與技術指標計算:自動提取股票的歷史數據,計算移動平均線(SMA)和相對強弱指數(RSI)等技術指標。
  2. 自動生成建議:根據技術指標自動生成「買入」、「賣出」或「持有」的投資建議,並且根據市場條件附帶詳細的解釋與信心程度。
  3. Cousor Composer 的優勢:提供快速鍵支持,能夠高效生成程式碼並自動修改相關邏輯,大大加速了開發進度。

透過這一系列功能,開發者能夠快速完成使用者需求,生成精準的投資建議,並且透過自動化工具減少了手動操作的時間成本。

相關程式碼

https://github.com/kulius/odoo17_ithelp/tree/master/addons/personal_stock

上一篇
Day25:個案二:投資管理系統(5)-產生股票 K 線圖
下一篇
Day27:個案二:投資管理系統(7)-股票觀察清單,透過機器學習預測股市漲跌
系列文
利用【AI】工具,聰明進行 Odoo 程式開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言